package com.wgs.onomastici;

import java.io.IOException;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

public class CercaPerData extends AbstractBaseActivity implements OnClickListener{

	private DatePicker data;
	private Button cerca;
	private TextView santi;
	private static final int DIALOG = 1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_cerca_per__data);
		
		/************* Attivazione listener, pulsanti e DataPicker *************/
		cerca = (Button)findViewById(R.id.inizia_ricerca_data);
		cerca.setOnClickListener(this);
		data = (DatePicker)findViewById(R.id.prendi_data);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_cerca_per__data, menu);
		return true;
	}

	@Override
	public void onClick(View v) {
		
		
		AssetManager manager = getAssets();
		XmlParser parser;
		try {
			parser = XmlParser.getInstance(manager);
			
			Finder finder = new Finder(parser.getDocument());
			
			int day = data.getDayOfMonth();
			int month = data.getMonth()+1;
			
			/************* Ricerca Santi in base alla data selezionata e stampa risultati *************/
			List<String> lista_santi = finder.findByDate(String.valueOf(day),String.valueOf(month));
			santi = (TextView)findViewById(R.id.santi_trovati);
			santi.setGravity(Gravity.TOP);
			santi.setTextSize(18);
			santi.setTypeface(null,1);
			santi.setText(finder.formatSanti(lista_santi));
			
			
			
			/*
			
			
				
			String contatti = "";
			ContentResolver content = getContentResolver();
			Uri uri = Contacts.CONTENT_URI;
			String[] proiezione = {Contacts.DISPLAY_NAME};
			String selezione = null;
			String[] argomentiSelezione = null;
			String ordinamento = Contacts.DISPLAY_NAME+" ASC";
			Cursor cursore = content.query(uri, proiezione, selezione, argomentiSelezione, ordinamento);
			while(cursore.moveToNext()){
				contatti += cursore.getString(0)+" ";
			}
			String[] rubrica = contatti.split(" ");
			
				
			String[] santi_ricerca = ris_santi.split("\n");
			for(int i=0;i<rubrica.length;i++){
				for(int k=0;k<santi_ricerca.length;k++){
					if(santi_ricerca[k].equalsIgnoreCase(rubrica[i])){
						Bundle bundle = new Bundle();
						bundle.putString("santo", santi_ricerca[k]);
						bundle.putString("giorni", finder.cercaPerNome(santi_ricerca[k]));
						showDialog(DIALOG, bundle);
						RelativeLayout layout = new RelativeLayout(getApplicationContext());
						layout.setGravity(Gravity.CENTER);
					}
				}
			}
			*/
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		}
		
		
	}
	
	protected Dialog onCreateDialog(int id,Bundle bundle) {
		Dialog dialog;
		switch (id) {
		case DIALOG:
			dialog = createAlertDialog(bundle.getString("santo"),bundle.getString("giorni"));
			break;
		default:
			dialog = null;
			break;
		}
		return dialog;
	}
	
	private Dialog createAlertDialog(String nome,String giorni){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("Attenzione!");
		builder.setMessage("Nel giorno scelto potrebbe essere l'onomastico di "+nome+".\n"+"Potrebbe festeggiarlo anche il: "+giorni);
		builder.setCancelable(true);
		builder.setPositiveButton("Torna all'applicazione", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dismissDialog(DIALOG);
			}
		});
		AlertDialog alert = builder.create();
		return alert;
	}
	/*
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch(item.getItemId()){
		case R.id.menu_settings1:
			createAlertDialogInfo();
			break;
		case R.id.menu_settings2:
			createAlertDialogAbout();
			break;
		}
		return true;
	}
	
	private void createAlertDialogInfo(){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("Onomastici");
		builder.setMessage("In questa sezione c'� la possibilit� di inserire una data e di ricevere la lista dei santi festeggiati.\nSe uno dei contatti coincide con uno dei santi allora viene avvisato l'utente.");
		builder.setCancelable(true);
		builder.setPositiveButton("Torna all'applicazione", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
			}
		});
		builder.show();
	}
	
	private void createAlertDialogAbout(){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("About");
		builder.setMessage("Applicazione realizzata da:\n- Iachetti Walter\n- Iacuaniello Giacomo\n- Imperatrice Assunta");
		builder.setCancelable(true);
		builder.setPositiveButton("Torna all'applicazione", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
			}
		});
		builder.show();
	}
*/
}
